﻿using System;
using System.Collections.Generic;
using Sistema.Dominio;
using Sistema.Kernel;
using Sistema.WF.Componentes.FormulariosBase;

namespace Sistema.WF.View.Kernel
{
    public partial class FRM_cadastroEmpresa : FRM_cadastro
    {
        private EmpresaInfo _empresa;
        private Empresa _buss;

        public FRM_cadastroEmpresa()
        {
            InitializeComponent();

        }

        private void FRM_cadastroEmpresa_Load(object sender, EventArgs e)
        {
            _empresa = new EmpresaInfo();
            _buss = new Empresa();
        }

        protected override void Cadastrar()
        {
            try
            {
                Empresa cadastrar = new Empresa();
                EmpresaInfo empresaNova = new EmpresaInfo();
                IList<EnderecoVO> endereco = new List<EnderecoVO>();

                endereco.Add(R2EnderecoReformulado.Endereco);


                base.Cadastrar();
                empresaNova.DadosEmpresariais = R2DadosEmpresariais.DadosPessoaJuridica;
                empresaNova.Endereco = endereco;
                empresaNova.Telefone = R2Telefone.MultiplosTelefones;
                empresaNova.Email = R2Email.EmailMultiplos;
                //empresaNova.ConfiguraEmail = r2;

                cadastrar.Cadastrar(empresaNova);
                this.LimparCampos();
            }
            catch (ViewException ex)
            {
                ex.MensagemAoUsuario = "Ocorreu um erro ao tentar cadastrar Empresa.";
            }
        }
        protected override void Alterar()
        {
            try
            {
                Empresa alterar = new Empresa();
                IList<EnderecoVO> endereco = new List<EnderecoVO>();

                endereco.Add(R2EnderecoReformulado.Endereco);

                base.Alterar();

                _empresa.DadosEmpresariais = R2DadosEmpresariais.DadosPessoaJuridica;
                _empresa.Endereco = endereco;
                _empresa.Telefone = R2Telefone.MultiplosTelefones;
                // R2Email.EmailMultiplos = _email;

                alterar.Alterar(_empresa);
                this.LimparCampos();
            }
            catch (ViewException ex)
            {
                ex.MensagemAoUsuario = "Ocorreu um erro ao tentar alterar Empresa.";
            }
        }
        protected override void Excluir()
        {
            try
            {
                Empresa excluir = new Empresa();

                IList<EnderecoVO> endereco = new List<EnderecoVO>();

                endereco.Add(R2EnderecoReformulado.Endereco);

                base.Excluir();

                _empresa.DadosEmpresariais = R2DadosEmpresariais.DadosPessoaJuridica;
                _empresa.Endereco = endereco;
                _empresa.Telefone = R2Telefone.MultiplosTelefones;
                // R2Email.EmailMultiplos = _email;

                excluir.Excluir(_empresa);
                this.LimparCampos();

            }
            catch (ViewException ex)
            {
                ex.MensagemAoUsuario = "Ocorreu um erro ao tentar excluir Empresa.";
            }
        }

        protected override void LimparCampos()
        {
            R2DadosEmpresariais.LimparCampos();
            R2EnderecoReformulado.LimparCampos();
            
         }

        protected override void Pesquisa()
        {
            base.Pesquisa();
            FRM_pesquisaEmpresa tela = new FRM_pesquisaEmpresa();
            _empresa =tela.Pesquisar();
             //tela.retornaEmpresa();
            this.CarregaTela(_empresa);
        }

        private void CarregaTela(EmpresaInfo empresa)
        {
            R2DadosEmpresariais.DadosPessoaJuridica = empresa.DadosEmpresariais;
            R2EnderecoReformulado.Endereco = empresa.Endereco[0];
            R2Telefone.MultiplosTelefones = empresa.Telefone;
            //R2Email.EmailMultiplos = _email;

        }

        private void CMD_inserir_Click(object sender, EventArgs e)
        {

        }

        private void CMD_alterar_Click(object sender, EventArgs e)
        {

        }

        private void CMD_excluir_Click(object sender, EventArgs e)
        {

        }
    }
}
